package cn.b.sky.shop.activiti.service;

import cn.b.sky.shop.activiti.model.DeploymentNode;
import cn.b.sky.shop.activiti.model.FlowNodeEvent;
import cn.b.sky.shop.activiti.model.FlowNodeUser;

import java.util.List;

public interface DeploymentNodeService {
  /**
   * 
   * <strong>Title : getFlowNodeUserByDeploymentNodeId<br></strong>
   * <strong>Description : </strong>获取已经发布的流程的节点用户配置信息<br> 
   * <strong>Create on : 2016-11-21 下午7:11:57<br></strong>
   * <p>
   * @param deploymentNodeId
   * @return
   * List<FlowNodeUser>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<FlowNodeUser> getFlowNodeUserByDeploymentNodeId(Long deploymentNodeId);

  /**
   * 
   * <strong>Title : getFlowNodeEventByDeploymentNodeId<br></strong>
   * <strong>Description : </strong>获取已经发布的流程的节点事件配置信息<br> 
   * <strong>Create on : 2016-11-21 下午7:12:15<br></strong>
   * <p>
   * @param deploymentNodeId
   * @return
   * List<FlowNodeEvent>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<FlowNodeEvent> getFlowNodeEventByDeploymentNodeId(Long deploymentNodeId);
  
  /**
   * 
   * <strong>Title : getStartEventFormKey<br></strong>
   * <strong>Description : </strong>获取开始节点的表单信息<br> 
   * <strong>Create on : 2016-11-21 下午7:12:41<br></strong>
   * <p>
   * @param deploymentId
   * @param tenantId
   * @return
   * String
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public String getStartEventFormKey(String deploymentId, String tenantId);

  /**
   * 
   * <strong>Title : getFlowNodeByDeploymentIdAndActivitId<br></strong>
   * <strong>Description : </strong>获取发布流程某个节点的信息<br> 
   * <strong>Create on : 2016-11-21 下午7:13:01<br></strong>
   * <p>
   * @param deploymentId
   * @param activitId
   * @param tenantId
   * @return
   * DeploymentNode
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public DeploymentNode getFlowNodeByDeploymentIdAndActivitId(String deploymentId, String activitId, String tenantId);

  /**
   * 
   * <strong>Title : copyModelNodeToDeploymentNode<br></strong>
   * <strong>Description : </strong>流程模型的配置copy到已发布的流程上去<br> 
   * <strong>Create on : 2016-11-21 下午7:14:17<br></strong>
   * <p>
   * @param modelId
   * @param tenantId
   * @param deploymentId
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void copyModelNodeToDeploymentNode(String modelId, String tenantId, String deploymentId);

  /**
   * 
   * <strong>Title : saveDeploymentNode<br></strong>
   * <strong>Description : </strong>保存已发布流程的节点信息<br> 
   * <strong>Create on : 2016-11-21 下午7:14:36<br></strong>
   * <p>
   * @param deploymentNode
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveDeploymentNode(DeploymentNode deploymentNode);

  /**
   * 
   * <strong>Title : saveFlowNodeUser<br></strong>
   * <strong>Description : </strong>保存已发布流程的节点用户信息<br> 
   * <strong>Create on : 2016-11-21 下午7:14:51<br></strong>
   * <p>
   * @param flowNodeUser
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveFlowNodeUser(FlowNodeUser flowNodeUser);

  /**
   * 
   * <strong>Title : saveFlowNodeUser<br></strong>
   * <strong>Description : </strong>保存已发布流程的节点事件信息<br> 
   * <strong>Create on : 2016-11-21 下午7:14:51<br></strong>
   * <p>
   * @param flowNodeUser
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveFlowNodeEvent(FlowNodeEvent flowNodeEvent);
}
